package com.sxj.corejava.code08_常用类.泛型;

/**
 * @author 石小俊
 * @date 2024年04月18日 20:13
 */
public class Test01_泛型类 {

    public static void main(String[] args) {
        Student student = new Student();
        student.setNo(1);
        student.setNo("1");
        student.setNo(3.14);
        student.setNo(true);
        student.setName("admin");

        // 泛型类型不能是基本数据类型
        // 在定义时可以限制对应泛型的实际应用类型
        // 当限制后,此时对应属性只能是限制的类型
        Student<Integer> student2 = new Student<>();
        student2.setNo(1);
        Student<String> student3 = new Student<>();
        student3.setNo("1");
        Stu stu = new Stu();
        stu.setNo("zj0001");
    }

}
class Student<T>{
    // 如果使用Object,其属性值可以是任何类型,缺乏类型安全
    // 在实际开发中,不建议使用Object作为属性类型
    private T no;
    private String name;

    public T getNo() {
        return no;
    }

    public void setNo(T no) {
        this.no = no;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

class Stu{
    private String no;
    private String name;

    public String getNo() {
        return no;
    }

    public void setNo(String no) {
        this.no = no;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
